了解如何在裸機服務器上運行 BGP 守護程序,以與 Heficed 路由器建立BGP 會話,并從您的 AS 宣布您的 IPv4 和/或 IPv6 范圍。
要求:
- 為您的 IPv4 和/或 IPv6 范圍創建 RPKI 和路由對象,并將您的 AS 編號作為來源。
- 確保您在服務器中運行 CentOS 7,因為本文基于 CentOS 7 操作系統。請注意,不同 Linux 版本上的配置相似。
在繼續之前,請通過提供以下信息從您的終端提交請求以請求與您的裸機服務器創建 BGP 會話:
- 服務器的主 IP 地址
- 您的公共 AS 編號
- 您的 IPv4 和/或 IPv6 范圍
- BGP 會話密碼
- 您希望通過 BGP 會話接收的內容:
- 全桌;
- 全表和默認網關;
- 僅默認網關;
- 沒有什么。
- 指定是否需要 /64 IPv6 范圍作為管理 IPv6 地址。如果您有自己的管理 IPv6 范圍,則可以跳過此步驟。
創建 BGP 會話后,繼續執行以下步驟。
連接到您的服務器并將 IPv6 地址添加到網絡接口。打開文件/etc/sysconfig/network-scripts/ifcfg-bond0進行編輯:
[root@fra-d054 ~]# cd /etc/sysconfig/network-scripts/ [root@fra-d054 network-scripts]# vi ifcfg-bond0
該文件應如下所示:
[root@fra-d054 network-scripts]# cat ifcfg-bond0 # BEGIN ANSIBLE MANAGED BLOCK DEVICE=bond0 TYPE=Bond ONBOOT=yes BOOTPROTO=none IPADDR=102.165.9.22 NETMASK=255.255.255.252 GATEWAY=102.165.9.21 DNS1=1.1 .1.1 DNS2=8.8.8.8 BONDING_OPTS="mode=4 miimon=100 lacp_rate=fast" # END ANSIBLE MANAGED BLOCK
在文件末尾添加 IPv6 地址和網關。
[root@fra-d054 network-scripts]# cat ifcfg-bond0 # BEGIN ANSIBLE MANAGED BLOCK DEVICE=bond0 TYPE=Bond ONBOOT=yes BOOTPROTO=none IPADDR=102.165.9.22 NETMASK=255.255.255.252 GATEWAY=102.165.9.21 DNS1=1.1 .1.1 DNS2=8.8.8.8 BONDING_OPTS="mode=4 miimon=100 lacp_rate=fast" IPV6INIT=yes IPV6ADDR=2a03:a960:184:1::2/64 IPV6_DEFAULTGW=2a03:a960:184:1::1 #結束 ANSIBLE 管理塊
重新啟動網絡服務以應用更改:
[root@fra-d054 network-scripts]# systemctl restart network [root@fra-d054 network-scripts]# ifconfig bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500 inet 102.165.9.22 網絡掩碼 255.255 .255.252 廣播 102.165.9.23 inet6 fe80::ec4:7aff:fe85:863c prefixlen 64 scopeid 0x20<link> inet6 2a03:a960:184:1::2 prefixlen 64 scopeid 0x0<global> ether 0c:c4:7a:85 :86:3c txqueuelen 1000 (以太網) RX 數據包 39 字節 3802 (3.7 KiB) RX 錯誤 0 丟棄 0 溢出 0 幀 0 TX 數據包 44 字節 4132 (4.0 KiB) TX 錯誤 0 丟棄 0 溢出 0 載波 0 沖突 0 enp1s0f0: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500 ether 0c:c4:7a:85:86:3c txqueuelen 1000 (Ethernet) RX packet 1932 bytes 197115 (192.4 KiB) RX errors 0 drop 0 overruns 0 幀 0 TX 數據包 1493 字節 178261 (174.0 KiB) TX 錯誤 0 丟棄 0 溢出 0 載波 0 沖突 0 設備內存 0xdf180000-df1fffff enp1s0f1: flags=6147<UP,BROADCAST,SLAVE,MULTICAST> mtu 1500 ether 0c:c4:7a :85:86:3c txqueuelen 1000 (以太網) RX 數據包 0 字節 0 (0.0 B) RX 錯誤 0 丟棄 0 溢出 0 幀 0 TX 數據包 0 字節 0 (0.0 B) TX 錯誤 0 丟棄 0 溢出 0 載波 0 沖突 0 設備內存 0xdf100000-df17ffff lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 網絡掩碼 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> 循環txqueuelen 1(本地環回) RX 數據包 72 字節 6962 (6.7 KiB) RX 錯誤 0 丟棄 0 溢出 0 幀 0 TX 數據包 72 字節 6962 (6.7 KiB) TX 錯誤 0 丟棄 0 溢出 0 載波 0 沖突 0
確認 IPv6 連接正常:
[root@fra-d054 network-scripts]# ping6 2001:4860:4860::8888 PING 2001:4860:4860::8888(2001:4860:4860::8888) 56 個數據字節 64 個字節從 2001:4860:4860 ::8888: icmp_seq=1 ttl=119 time=0.370 ms 64 bytes from 2001:4860:4860::8888: icmp_seq=2 ttl=119 time=0.554 ms ^C --- 2001:4860:4860::8888 ping統計 --- 2 個數據包傳輸,2 個數據包接收,0% 數據包丟失,時間 1000ms rtt min/avg/max/mdev = 0.370/0.462/0.554/0.092 ms
將您的 IPv4 和/或 IPv6 范圍添加到網絡接口:
[root@fra-d054 network-scripts]# ip addr add 191.96.202.0/24 dev bond0 [root@fra-d054 network-scripts]# ip -6 addr add 2a0e:1c04:1::/48 dev bond0
通過一一運行以下命令來更新存儲庫并安裝bird守護程序:
[root@fra-d054 ~]# wget -4 https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-13.noarch.rpm [root@ fra-d054 ~]# rpm -Uvh epel-release-7-13.noarch.rpm [root@fra-d054 ~]# yum -y update [root@fra-d054 ~]# yum -y install bird
打開文件/etc/bird.conf并使用以下行附加文件。確保將示例 IP 地址和 IP 范圍替換為您的實際 IP 數據、AS 編號和 BGP 密碼。
全部記錄系統日志; #Router ID = 服務器主IP地址 router id 102.165.9.22; 協議設備{ 掃描時間10;# 每 10 秒掃描一次接口 } # 禁用自動生成到所有網絡接口的直接路由。 協議直接{ 禁用;# 默認禁用 } #禁止 BIRD 路由表與 OS 內核同步。 協議內核{ 全部導入;# 導入表,默認是全部導入全部 導出;# 導出到協議。默認為 export none } #Route your subnet via your server main IP address protocol static { route 191.96.202.0/24 via 102.165.9.22; } #local = 您的服務器主 IP 地址和您的 AS 編號 #neighbor = 您的服務器主 IP 地址的網關和 Heficed AS 編號,默認為 61317 #password = BGP 會話密碼 協議 bgp Heficed { description "BGP session to Heficed"; 本地 102.165.9.22 為 397727; 鄰居 102.165.9.21 為 61317; 密碼“您的 BGP 密碼”; 進口過濾器{打印“進口”;接受; }; 出口過濾器{打印“出口”;接受; }; }
保存文件并關閉它。使用以下命令應用更改:
[root@fra-d054 ~]# systemctl start bird
檢查小鳥守護進程是否正在運行:
[root@fra-d054 ~]# systemctl status bird ●bird.service - BIRD Internet Routing Daemon Loaded: loaded (/usr/lib/systemd/system/bird.service; disabled; vendor preset: disabled) Active: active (running ) 自 2021 年 6 月 26 日星期六 14:31:31 UTC 起;15s 前 Main PID: 8931 (bird) CGroup: /system.slice/bird.service └─8931 /usr/sbin/bird -f -u bird -g bird Jun 26 14:31:31 fra-d054 systemd[1] : 啟動 BIRD Internet Routing Daemon。 6 月 26 日 14:31:31 fra-d054 鳥 [8931]:開始 于 6 月 26 日 14:31:31 fra-d054 鳥 [8931]:網絡鏈接:文件存在 6 月 26 日 14:31:36 fra-d054 鳥 [8931]:出口 Jun 26 14:31:36 fra-d054 鳥[8931]:進口
使用命令birdc進入鳥控制臺:
[root@fra-d054 ~]#birdc BIRD 1.6.8 準備好了。 鳥>
檢查是否使用命令show protocol all Heficed建立了 BGP 會話:
bird> show protocol all Heficed name proto table state since info Heficed BGP master up 14:31:35 已建立 描述:到 Heficed 的 BGP 會話 首選項:100 輸入過濾器:(未命名) 輸出過濾器:(未命名) 路由:1 個導入,1 個導出, 1 首選 路線更改統計:收到拒絕過濾忽略接受 進口更新:1 0 0 0 1 進口撤回:0 0 --- 0 0 出口更新:2 1 0 --- 1 出口撤回:0 --- --- --- 0 BGP 狀態:已建立 鄰居地址:102.165.9.21 鄰居 AS:61317 鄰居 ID:191.101.243.1 鄰居上限:刷新重啟感知 llgr-aware AS4 會話:外部 AS4 源地址:102.165.9.22 Hold timer:70/90 Keepalive timer:20/30 bird>
而已。您的 BGP IPv4 會話已建立,您的 IPv4 范圍應在全局路由表中可見。
要建立 IPv6 BGP 會話,請使用以下命令安裝bird6包:
[root@fra-d054 ~]# yum -y install bird6
編輯配置文件/etc/bird6.conf并使用以下行附加文件。確保將示例 IP 地址和 IP 范圍替換為您的實際 IP 信息、AS 編號和 BGP 密碼。
全部記錄系統日志; #Router ID = 服務器主 IPv4 地址 router id 102.165.9.22; 協議設備{ 掃描時間10;# 每 10 秒掃描一次接口 } # 禁用自動生成到所有網絡接口的直接路由。 協議直接{ 禁用;# 默認禁用 } #禁止 BIRD 路由表與 OS 內核同步。 協議內核{ 全部導入;# 導入表,默認是全部導入全部 導出;# 導出到協議。默認是 export none } #Route your subnet via your server main IP address protocol static { route 2a0e:1c04:1::/48 via 2a03:a960:184:1::2; } #local = 您的服務器主 IP 地址和您的 AS 編號 #neighbor = 您的服務器主 IP 地址的網關和 Heficed AS 編號,默認為 61317 #password = BGP 會話密碼 協議 bgp Heficed { description "BGP session to Heficed"; 本地 2a03:a960:184:1::2 為 397727; 鄰居 2a03:a960:184:1::1 為 61317; 密碼“您的 BGP 密碼”; 進口過濾器{打印“進口”;接受; }; 出口過濾器{打印“出口”;接受; }; }
使用以下命令應用更改:
[root@fra-d054 ~]# systemctl start bird6
確認bird6 守護進程是否正在運行:
[root@fra-d054 ~]# systemctl status bird6 ● bird6.service - BIRD Internet Routing Daemon Loaded: loaded (/usr/lib/systemd/system/bird6.service; disabled; vendor preset: disabled) Active: active (running ) 自 2021 年 6 月 26 日星期六 14:37:07 UTC 起;2s 前 Main PID: 9337 (bird6) CGroup: /system.slice/bird6.service └─9337 /usr/sbin/bird6 -f -u bird6 -g bird6 Jun 26 14:37:07 fra-d054 systemd[1] : 啟動 BIRD Internet Routing Daemon。 6 月 26 日 14:37:07 fra-d054 bird6[9337]:開始 于 6 月 26 日 14:37:07 fra-d054 bird6[9337]:Netlink:無效參數 6 月 26 日 14:37:08 fra-d054 bird6[9337]:出口 6 月 26 日 14:37:08 fra-d054 bird6[9337]:進口
使用命令進入bird6控制臺,查看會話是否建立:
[root@fra-d054 ~]#birdc6 BIRD 1.6.8 準備好了。 bird> show protocol all Heficed name proto table state since info Heficed BGP master up 14:37:08 已建立 描述:到 Heficed 的 BGP 會話 首選項:100 輸入過濾器:(未命名) 輸出過濾器:(未命名) 路由:1 個導入,1 個導出, 1 首選 路線更改統計:收到拒絕過濾忽略接受 進口更新:1 0 0 0 1 進口撤回:0 0 --- 0 0 出口更新:2 1 0 --- 1 出口撤回:0 --- --- --- 0 BGP 狀態:已建立 鄰居地址:2a03:a960:184:1::1 鄰居 AS:61317 鄰居 ID:191.101.243.1 鄰居上限:刷新重啟感知 llgr-感知 AS4 會話:外部 AS4 源地址:2a03:a960:184:1::2 保持定時器:80/90 Keepalive 定時器:19/30 Bird>
而已。您的 IPv6 BGP 會話已建立,您的 IPv6 范圍應在全局路由表中可見。